package lq3532;

import java.util.PriorityQueue;
import java.util.Scanner;


public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		//注意泛型数组的写法
		//[0,9]十个数，每个一个优先队列存放代价，优先队列默认小的先出
		PriorityQueue<Integer>[] qArr=(PriorityQueue<Integer>[])new PriorityQueue<?>[10];
		for(int i=0;i<n;i++) {
			int k = sc.nextInt();
			//先判断优先队列是否需要实例化再存值
			if(qArr[k]==null){
				qArr[k] = new PriorityQueue<Integer>();
				qArr[k].add(sc.nextInt());
			}else {
				qArr[k].add(sc.nextInt());
			}
		}
		
		
		//输出qArr
//		for(int i=0;i<10;i++) {
//			System.out.printf("%d:", i);
//			while(qArr[i]!=null&&!qArr[i].isEmpty()) {
//				System.out.printf("%d,", qArr[i].poll());
//			}
//			System.out.println();
//		}
		
	
		int sum = 0;
		int m = n/10; //预计算每个数出现的次数
		for(int i=0;i<10;i++) {
			while(qArr[i]!=null&&qArr[i].size()>m) {
				//判断i对应数优先队列是否存在
				//优先队列大于m的部分按由小到大计算代价
				sum += qArr[i].poll();
			}
		}
		System.out.println(sum);
	}

}
